1. Field
This disclosure relates to generating and receiving traffic for testing a network or network device.
2. Description of the Related Art
In many types of communications networks, each message to be sent is divided into portions of fixed or variable length. Each portion may be referred to as a packet, a frame, a cell, a datagram, a data unit, or other unit of information, all of which are referred to herein as packets.
Each packet contains a portion of an original message, commonly called the payload of the packet. The payload of a packet may contain data, or may contain voice or video information. The payload of a packet may also contain network management and control information. In addition, each packet contains identification and routing information, commonly called a packet header. The packets are sent individually over the network through multiple switches or nodes. The packets are reassembled into the message at a final destination using the information contained in the packet headers, before the message is delivered to a target device or end user. At the receiving end, the reassembled message is passed to the end user in a format compatible with the user's equipment.
Communications networks that transmit messages as packets are called packet switched networks. Packet switched networks commonly contain a mesh of transmission paths which intersect at hubs or nodes. At least some of the nodes may include a switching device or router that receives packets arriving at the node and retransmits the packets along appropriate outgoing paths. Packet switched networks are governed by a layered structure of industry-standard protocols. Each layer of this structure, commonly called a protocol stack, processes traffic received from and destined for adjacent layers of the protocol stack. The Open Systems Interconnect (OSI) model defines seven possible layers in a protocol stack. The TCP/IP (Transmission Control Protocol/Internet Protocol) suite used for the Internet has five layers that are commonly referred to as layers 1, 2, 3, 4, and 7, where the numbers refer to the most nearly corresponding layers of the OSI model. Layers 1, 2, 3, 4, and 7 of the TCP/IP protocol suite are the physical layer, the link layer, the internetworking layer, the transport layer, and the application layer, respectively.
Layer 1 protocols define the physical (electrical, optical, or wireless) interface between nodes of the network. Layer 1 protocols include various Ethernet physical configurations, the Synchronous Optical Network (SONET) and other optical connection protocols, and various wireless protocols such as Wi-Fi.
Layer 2 protocols govern how data is logically transferred between nodes of the network. Layer 2 protocols include the Ethernet, Asynchronous Transfer Mode, Frame Relay, Point to Point Protocol, Layer 2 Tunneling Protocol, Fiber Distributed Data Interface, Synchronous Data Link Control, High-Level Data Link Control, Integrated Services Digital Network, Token Ring, various wireless protocols, various Ethernet and Fibre Channel protocols, and other protocols.
Layer 3 protocols govern how packets are routed from a source to a destination along paths connecting multiple nodes of the network. The dominant layer 3 protocols are the well-known Internet Protocol version 4 (IPv4) and version 6 (IPv6). A packet switched network may need to route IP packets using a mixture of layer 2 protocols and layer 1 protocols. At least some of the nodes of the network may include a router that extracts a destination address from a network layer header contained within each packet. The router then uses the destination address to determine the route or path along which the packet should be retransmitted. A typical packet may pass through a plurality of routers, each of which repeats the actions of extracting the destination address and determining the route or path along which the packet should be retransmitted.
Layer 4 protocols govern end-to-end message delivery in a network. In particular, the Transmission Control Protocol (TCP) provides for reliable delivery of packets streams using a system of sequential acknowledgement and retransmission when necessary. TCP is a connection-oriented protocol in which two devices exchange messages to open a virtual connection via the network. Once a connection is opened, bidirectional communications may occur between the connected devices. The connection may exist until closed unilaterally by one of the devices. Opening and closing a connection both require several steps at which specific messages are exchanged between the two devices. A connection may also be closed when an anticipated response is not received by one device for a predetermined period of time, commonly called a “time-out”. A TCP connection is considered to be “stateful” since each device must maintain information describing the state of the connection (i.e. being opened, established, being closed), what data has been sent, and what sent data has been acknowledged.
The User Datagram Protocol (UDP) is an alternative layer 4 protocol that provides for delivery of packet streams. UDP connections are “stateless” in that received UPD messages are not acknowledged by the receiving device and neither the sending nor receiving devices maintain information describing the state of the connection. UDP does not provide for reliable delivery.
Layer 7 protocols include the Hyper-Text Transfer Protocol (HTTP) used to convey HTML documents such as Web pages, and the Simple Mail Transfer Protocol (SMTP) and Post Office Protocol (POP3) used to convey electronic mail messages. Other layer 7 protocols include Simple Message System (SMS), File Transfer Protocol (FTP), Real Time Protocol (RTP), Real-time Transport Control Protocol (RTCP), Real Time Streaming Protocol (RTSP), Media Gateway Control Protocol (MEGACO), Session Initiation Protocol (SIP), and other protocols used to transfer data, voice, video, and network control information over a network.
In this patent, the term “device under test” (DUT) means any system or apparatus being tested by a network test system. A DUT may be a device such as a switch, router, server, or load balancer; an interconnected plurality of devices such as a server cluster; or all or a portion of a packet switched communications network. In order to test a DUT, test traffic comprising a large number of packets may be generated and transmitted to and/or through the DUT at one or more ports. Return test traffic transmitted through and/or from the DUT may be received at different ports. The received test traffic may be analyzed to measure the performance of the DUT. In this context, the term “port” refers to a communications connection between the DUT and the equipment used to test the network.
Typically, test traffic is a mix of stateless and stateful traffic. Since a test port must establish its presence to the DUT, test traffic almost always includes some stateful network control traffic using one or more routing protocols, such as Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS), Interior Gateway Routing protocol (IGRP), Enhanced Interior Gateway Routing protocol (EIGRP), Routing Information Protocol (RIP), and/or Border Gateway Protocol (BGP). When a DUT is a switch or router operating at layer 2 or layer 3 of the network structure, the test traffic may be predominantly stateless IP packets apparently originating from a plurality of source IP addresses external to the DUT and destined for a plurality of destination IP addresses that are also external to the DUT. When a DUT operates at a higher layer of the network structure (for example, when the DUT is or includes a server, a server load balancer, a firewall, a network security device that performs packet inspection, or similar network devices), the test traffic may include stateful TCP connections that terminate within the DUT.
Throughout this description, elements appearing in schematic and block diagrams are assigned three-digit reference designators, where the most significant digit is the figure number where the element is introduced and the two least significant digits are specific to the element. An element that is not described in conjunction with a block diagram may be presumed to have the same characteristics and function as a previously-described element having the same reference designator.